//
//  MYOAuthViewController.swift
//  swift2.0项目开始
//
//  Created by 龚昕炜 on 16/7/29.
//  Copyright © 2016年 龚昕炜. All rights reserved.
//

import UIKit

class MYOAuthViewController: UIViewController, UIWebViewDelegate {
    
    let webView: UIWebView = UIWebView()
        
    override func loadView() {

        view = webView
        
    }

    override func viewDidLoad() {
        super.viewDidLoad()

        setUpNav()
        
        view.backgroundColor = UIColor.whiteColor()
        
        /** URL */
        let url = "https://api.weibo.com/oauth2/authorize?client_id=866510465&redirect_uri=http://www.baidu.com"
        
        /** request */
        let request = NSURLRequest(URL: NSURL(string: url)!)
        
        webView.delegate = self
        
        /** 加载 */
        webView.loadRequest(request)
    }

    /** 设置Nav */
    private func setUpNav() {
    
        navigationItem.leftBarButtonItem = UIBarButtonItem(title: "返回", style: .Plain, target: self, action: "dismiss")
        navigationItem.rightBarButtonItem = UIBarButtonItem(title: "自动填充", style: .Plain, target: self, action: "autoFill")
    }
    
    /** 返回 */
    @objc private func dismiss() {
        dismissViewControllerAnimated(true, completion: nil)
    }
    
    /** 自动填充 */
    @objc private func autoFill() {
        webView.stringByEvaluatingJavaScriptFromString("document.getElementById('userId').value='13512871264';document.getElementById('passwd').value='gxw522193';")
    }
    
//    @objc private func loadUserInfo(model: MYHTTPModel) {
//        
//        /** 
//         请求方式
//         GET
//         请求参数
//         参数	描述
//         access_token	采用OAuth授权方式为必填参数，其他授权方式不需要此参数，OAuth授权后获得
//         uid	需要查询的用户ID
//         */
//        let URLString = "https://api.weibo.com/2/users/show.json"
//        
//        let parameters = ["access_token": model.access_token!, "uid": String(model.uid)]
//        
//        MYHTTPClient.shareInstance.request(.GET, URLString: URLString, parameters: parameters, progress: nil, success: { (_, JSON) -> Void in
//            
//            if let userInfo = JSON {
//                printLog(userInfo)
//                let dict = userInfo as! [String: AnyObject]
//                /** 
//                name	友好显示名称
//                avatar_large	用户头像地址（大图），180×180像素 
//                */
//                self.userDetail?.name = dict["name"] as? String
//                self.userDetail?.avatar_large = dict["avatar_large"] as? String
//                /** 归档存储 */
//                self.userDetail?.saveUserInfo()
//            }
//            
//            }) { (_, error) -> Void in
//                printLog(error)
//        }
//        
//    }
    
//    @objc private func loadData(code: String) {
//        /** 
//        
//        client_id	true	string	申请应用时分配的AppKey。
//        client_secret	true	string	申请应用时分配的AppSecret。
//        grant_type	true	string	请求的类型，填写authorization_code
//        
//        grant_type为authorization_code时
//        必选	类型及范围	说明
//        code	true	string	调用authorize获得的code值。
//        redirect_uri	true	string	回调地址，需需与注册应用里的回调地址一致。
//        */
//        let parameters = ["client_id": "1331241592",
//                          "client_secret": "ff9adf9b1e3155ca93920e7f7671f53c",
//                          "grant_type": "authorization_code",
//                          "code": code,
//                          "redirect_uri": "http://www.itcast.cn"
//        ]
//        
//        MYHTTPClient.shareInstance.request(.POST, URLString: "https://api.weibo.com/oauth2/access_token", parameters: parameters, progress: nil, success: { (_, JSON) -> Void in
//                printLog(JSON)
//            
//            if let userDict = JSON {
//            
//                self.userDetail = MYHTTPModel(dict: userDict as! [String : AnyObject])
//                
////                printLog(account)
//                .loadUserInfo(self.userDetail!)
//            }
//            
//            }) { (_, error) -> Void in
//                printLog(error)
//                
//        }
//    }
}

// MARK: webView代理方法
extension MYOAuthViewController {
    
    /**  */
    func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool {
        
        if let urlString = request.URL?.absoluteString {
        
            if urlString.hasPrefix("http://www.baidu.com") {
                
                let query = request.URL?.query
                let code = query?.substringFromIndex("code=".endIndex)
//                                printLog(code!)
                MYLoginViewModel.shareInstance.loadToken(code!, success: { () -> () in
                    
                    /** 网页登录成功通知 */
                    /** 关闭网页页面 */
                    self.dismiss()
                    NSNotificationCenter.defaultCenter().postNotificationName(kNotificationChangeViewController, object: self)
                    }, failed: { (message) -> () in
//                        SVProgressHUD.showErrorWithStatus("加载失败了!!!!!")
                })
                return false
            }
        }
        
        return true
    }
    
    func webViewDidStartLoad(webView: UIWebView) {
        MBProgressHUD.showMessage("加载中...")
    }
    
    func webViewDidFinishLoad(webView: UIWebView) {
        MBProgressHUD.hideHUD()
        MBProgressHUD.showSuccess("加载完成")
    }
    
    func webView(webView: UIWebView, didFailLoadWithError error: NSError?) {
            MBProgressHUD.hideHUD()
//            MBProgressHUD.showError("加载失败")
    }
}
